// $ANTLR 3.4 /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g 2013-10-23 12:42:14

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class CIPAufgabe1Lexer extends Lexer {
    public static final int EOF=-1;
    public static final int Equ=4;
    public static final int Num=5;
    public static final int Op=6;

    // delegates
    // delegators
    public Lexer[] getDelegates() {
        return new Lexer[] {};
    }

    public CIPAufgabe1Lexer() {} 
    public CIPAufgabe1Lexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public CIPAufgabe1Lexer(CharStream input, RecognizerSharedState state) {
        super(input,state);
    }
    public String getGrammarFileName() { return "/Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g"; }

    // $ANTLR start "Op"
    public final void mOp() throws RecognitionException {
        try {
            int _type = Op;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:16:5: ( ( '+' | '-' ) )
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:16:6: ( '+' | '-' )
            {
            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            System.out.println("Operator");

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "Op"

    // $ANTLR start "Equ"
    public final void mEqu() throws RecognitionException {
        try {
            int _type = Equ;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:18:6: ( ( '=' ) )
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:18:7: ( '=' )
            {
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:18:7: ( '=' )
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:18:8: '='
            {
            match('='); 

            }


            System.out.println("Equals");

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "Equ"

    // $ANTLR start "Num"
    public final void mNum() throws RecognitionException {
        try {
            int _type = Num;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:20:6: ( ( 'A' .. 'G' ) )
            // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:20:7: ( 'A' .. 'G' )
            {
            if ( (input.LA(1) >= 'A' && input.LA(1) <= 'G') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            System.out.println("Number");

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "Num"

    public void mTokens() throws RecognitionException {
        // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:1:8: ( Op | Equ | Num )
        int alt1=3;
        switch ( input.LA(1) ) {
        case '+':
        case '-':
            {
            alt1=1;
            }
            break;
        case '=':
            {
            alt1=2;
            }
            break;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
            {
            alt1=3;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("", 1, 0, input);

            throw nvae;

        }

        switch (alt1) {
            case 1 :
                // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:1:10: Op
                {
                mOp(); 


                }
                break;
            case 2 :
                // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:1:13: Equ
                {
                mEqu(); 


                }
                break;
            case 3 :
                // /Users/iamapo/Downloads/CI Praktikum 1/CIPAufgabe1.g:1:17: Num
                {
                mNum(); 


                }
                break;

        }

    }


 

}